#ifndef EMOTION_SMILEYANIMATIONEMOTIONMANAGER_H
#define EMOTION_SMILEYANIMATIONEMOTIONMANAGER_H

#include "emotionmanager.h"
#include "abstractemotionmanager.h"

#include <QObject>
#include <QList>
#include <QMap>


namespace Emotion {

class AbstractEmotion;
class SmileyAnimationEmotion;

class SmileyAnimationEmotionManager : public AbstractEmotionManager
{
    Q_OBJECT
public:
    explicit SmileyAnimationEmotionManager(QObject *parent = 0);
    ~SmileyAnimationEmotionManager();

private:
    static SmileyAnimationEmotionManager *m_instance;

private:
    void init();
    virtual AbstractEmotion *createEmotion(int index) const;

    QString genName(int index) const;
    QString getCode(int index) const;
    QString getMeaning(int index) const;

public:
    static SmileyAnimationEmotionManager *instance(QObject *parent = 0);

public:
    virtual EmotionManagerType type() const;

public:
    virtual int count() const;
};

} // namespace Emotion

#endif // EMOTION_SMILEYANIMATIONEMOTIONMANAGER_H
